home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / IDLIncludes / OCEMailbox.idl < prev    next >
Text File  |  1996-05-01  |  16KB  |  364 lines

  1. /*
  2.      File:        OCEMailbox.idl
  3.  
  4.      Contains:    Apple Open Collaboration Environment OCEMaibox Interfaces.
  5.  
  6.      Version:    Technology:    AOCE Toolbox 1.02
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __OCEMAILBOX_IDL__
  19. #define __OCEMAILBOX_IDL__
  20.  
  21. #include <somobj.idl>
  22. #include <somcls.idl>
  23.  
  24. #ifndef __OCE_IDL__
  25. #include <OCE.idl>
  26. #endif
  27. #ifndef __OCEMAIL_IDL__
  28. #include <OCEMail.idl>
  29. #endif
  30. #ifndef __OCEMESSAGING_IDL__
  31. #include <OCEMessaging.idl>
  32. #endif
  33. #ifndef __OCESTANDARDMAIL_IDL__
  34. #include <OCEStandardMail.idl>
  35. #endif
  36.  
  37. #ifdef __SOMIDL__
  38.  
  39. #if FOR_SYSTEM7_ONLY
  40. /* opaque references, iterators, and progress indicator */
  41. typedef OpaquePtr                OpaqueMBMailboxRef;
  42.  
  43. typedef OpaquePtr                OpaqueMBContainerRef;
  44.  
  45. typedef OpaquePtr                OpaqueMBMailboxIterator;
  46.  
  47. typedef OpaquePtr                OpaqueMBMailItemIterator;
  48.  
  49. typedef OpaquePtr                OpaqueMBProgressIndicator;
  50.  
  51. typedef OpaquePtr                OpaqueMBCopyOperationRef;
  52.  
  53. typedef OpaquePtr                OpaqueMBNotificationRef;
  54.  
  55. typedef OpaquePtr                MBMailboxRef;                /* Substituted OpaquePtr for ``OpaqueMBMailboxRef*'' */
  56.  
  57. typedef OpaquePtr                MBOpenContainerRef;            /* Substituted OpaquePtr for ``OpaqueMBContainerRef*'' */
  58.  
  59. typedef OpaquePtr                MBMailboxIterator;            /* Substituted OpaquePtr for ``OpaqueMBMailboxIterator*'' */
  60.  
  61. typedef OpaquePtr                MBMailItemIterator;            /* Substituted OpaquePtr for ``OpaqueMBMailItemIterator*'' */
  62.  
  63. typedef OpaquePtr                MBProgressIndicator;        /* Substituted OpaquePtr for ``OpaqueMBProgressIndicator*'' */
  64.  
  65. typedef OpaquePtr                MBCopyOperationRef;            /* Substituted OpaquePtr for ``OpaqueMBCopyOperationRef*'' */
  66.  
  67. typedef OpaquePtr                MBNotificationRef;            /* Substituted OpaquePtr for ``OpaqueMBNotificationRef*'' */
  68.  
  69. /**********************************************************/
  70. /* Error codes, will be moved to OCEErrors.h */
  71. /***********************************************************/
  72. /**********************************************************/
  73. /* Mailbox Gestalt Values */
  74. /**********************************************************/
  75. /**********************************************************/
  76. /* Mailbox Data Structures */
  77. /**********************************************************/
  78. typedef UInt32                    MBMailboxToken;
  79.  
  80. typedef SOMLargeStruct            MBMailboxData;                /* Derived from a struct of 96 bytes in size */
  81.  
  82. /*     MBPermissions control whether other applications can detect that mailbox has been mounted */
  83. typedef UInt32                    MBPermissions;
  84.  
  85. /**********************************************************/
  86. /* Container Data Structures */
  87. /***********************************************************/
  88. /*
  89.     These structures are used to manipulate and list the mailbox containers. 
  90.     A container is a logical collection of mailbox items.  Examples of some 
  91.     standard containers are the inbox and the outbox. 
  92. */
  93. typedef UInt32                    MBContainerType;
  94.  
  95. typedef SOMLargeStruct            MBContainerToken;            /* Derived from a struct of 12 bytes in size */
  96.  
  97. typedef UInt32                    MBContainerStatus;
  98.  
  99. typedef UInt32                    MBContainerFlags;
  100.  
  101. typedef UInt32                    MBContainerLocation;
  102.  
  103. typedef UInt32                    MBContainerClass;
  104.  
  105. typedef SOMLargeStruct            MBContainerData;            /* Derived from a struct of 124 bytes in size */
  106.  
  107. typedef UInt8                    AddressAsType;
  108.  
  109. /*
  110.      AddressAsType is actually an enumerated type and its constants
  111.     kAddressedAs_TO, kAddressedAs_CC, and kAddressedAs_BCC are
  112.     defined in OCEMail.h in an anonymous enum list. 
  113. */
  114. typedef SOMLargeStruct            MBInboxLetterData;            /* Derived from a struct of 176 bytes in size */
  115.  
  116. typedef SOMLargeStruct            MBOutboxLetterData;            /* Derived from a struct of 124 bytes in size */
  117.  
  118. typedef UInt32                    MBMailItemType;
  119.  
  120. /* Filters for MBGetMailItemCount */
  121. typedef UInt32                    MBMailItemFilter;
  122.  
  123. typedef SOMLargeStruct            MBMailItemData;                /* Derived from a struct of 304 bytes in size */
  124.  
  125. /* Used to mark an item read or unread using MBMarkLetter */
  126. typedef UInt32                    MBLetterReadStatus;
  127.  
  128. /* Used to mark an item in or out of trash using MBMarkLetter */
  129. typedef UInt32                    MBLetterTrashStatus;
  130.  
  131. /**********************************************************/
  132. /* Changes Enumeration Data Structures */
  133. /***********************************************************/
  134. typedef UInt32                    MBMailItemChangeType;
  135.  
  136. typedef UInt32                    MBNotificationMask;
  137.  
  138. /***********************************************************/
  139. /* For mail item iterators */
  140. /***********************************************************/
  141. typedef UInt32                    MBSortOrder;
  142.  
  143. typedef UInt32                    MBSortDirection;
  144.  
  145. /* forward declaration */
  146.  
  147.  
  148. /*------------------------------------------------------------------------------*/
  149. /*     Parameter Blocks for the Operations                                        */
  150. /*------------------------------------------------------------------------------*/
  151. /**********************************************************/
  152. /* Mailbox Operations */
  153. /**********************************************************/
  154. /* Mounts the mailbox. Returns a mailboxRef which should be used on all future operations. */
  155. typedef SOMLargeStruct            MBMountMailboxPB;            /* Derived from a struct of 44 bytes in size */
  156.  
  157. /* Unmounts the Mailbox. After this call, the mailboxRef is no longer valid. */
  158. typedef SOMLargeStruct            MBUnmountMailboxPB;            /* Derived from a struct of 32 bytes in size */
  159.  
  160. /**********************************************************/
  161. /* Container and Mail Item Operations */
  162. /***********************************************************/
  163. /* Opens the container for use, returns a containerRef which should be used in all future Container operations */
  164. typedef SOMLargeStruct            MBOpenContainerPB;            /* Derived from a struct of 44 bytes in size */
  165.  
  166. /* Closes the container and invalidates the containerRef */
  167. typedef SOMLargeStruct            MBCloseContainerPB;            /* Derived from a struct of 30 bytes in size */
  168.  
  169. /* Reconnect open container to remote service */
  170. typedef SOMLargeStruct            MBReconnectOpenContainerPB;    /* Derived from a struct of 36 bytes in size */
  171.  
  172. /* Returns the mail item with the specified mail sequence number */
  173. typedef SOMLargeStruct            MBGetMailItemDataPB;        /* Derived from a struct of 38 bytes in size */
  174.  
  175. /* Returns the number of items in the container (filtered, if specified) */
  176. typedef SOMLargeStruct            MBGetMailItemCountPB;        /* Derived from a struct of 36 bytes in size */
  177.  
  178. /*
  179.  Allocates the memory and sets the Iterator to the first 
  180.    of the mail items of that type in the container. 
  181. */
  182. typedef SOMLargeStruct            MBCreateMailItemIteratorPB;    /* Derived from a struct of 48 bytes in size */
  183.  
  184. /* Dispose of the MBMailItemIterator */
  185. typedef SOMLargeStruct            MBDisposeMailItemIteratorPB; /* Derived from a struct of 28 bytes in size */
  186.  
  187. typedef SOMLargeStruct            MBMailItemIteratePB;        /* Derived from a struct of 32 bytes in size */
  188.  
  189. typedef SOMLargeStruct            MBResetMailItemIteratorPB;    /* Derived from a struct of 28 bytes in size */
  190.  
  191. /* MarkLetter Read/Unread and/or In Trash/Out of Trash. */
  192. typedef SOMLargeStruct            MBMarkLetterPB;                /* Derived from a struct of 42 bytes in size */
  193.  
  194. /* Stores the MailItem locally. */
  195. typedef SOMLargeStruct            MBCopyLocalPB;                /* Derived from a struct of 48 bytes in size */
  196.  
  197. typedef SOMLargeStruct            MBCopyToFilePB;                /* Derived from a struct of 46 bytes in size */
  198.  
  199. /* Cancels the copy operation, if possible. */
  200. typedef SOMLargeStruct            MBCancelCopyPB;                /* Derived from a struct of 28 bytes in size */
  201.  
  202. /* An irrevocable delete of an item from a container. */
  203. typedef SOMLargeStruct            MBDeleteLetterPB;            /* Derived from a struct of 34 bytes in size */
  204.  
  205. /* Forces a MailItem to be sent right now. This operation only works on MailItems in the outbox.*/
  206. typedef SOMLargeStruct            MBSendNowPB;                /* Derived from a struct of 38 bytes in size */
  207.  
  208. /**********************************************************/
  209. /* Notification and Changes Enumeration Operations */
  210. /***********************************************************/
  211. typedef OpaquePtr MBNotificationProcPtr;
  212. typedef OpaquePtr MBNotificationUPP;
  213. /* Allows a client to specify a callback routine and parameters. */
  214. typedef SOMLargeStruct            MBRegisterNotificationPB;    /* Derived from a struct of 48 bytes in size */
  215.  
  216. /* Allows client to clear the callback info. */
  217. typedef SOMLargeStruct            MBUnregisterNotificationPB;    /* Derived from a struct of 28 bytes in size */
  218.  
  219. /**********************************************************/
  220. /* Progress Indication Operations */
  221. /***********************************************************/
  222. /*
  223.  Creates a progress indicator for tracking progress of a copy operation from
  224.    MBCopyToFile or MBCopyLocal. 
  225. */
  226. typedef SOMLargeStruct            MBCreateProgressIndicatorPB; /* Derived from a struct of 28 bytes in size */
  227.  
  228. /* Dispose the progress indicator that was previously allocated by MBCreateProgressIndicator. */
  229. typedef SOMLargeStruct            MBDisposeProgressIndicatorPB; /* Derived from a struct of 28 bytes in size */
  230.  
  231. /*
  232.     Returns the current level of progress that has been completed.
  233.     The following fields can be polled during the the move in order to provide a "progress" 
  234.      indicator. The operation will be done when workCompleted equals totalWorkAmount. 
  235.     totalWorkAmount is pretty much a random number and is not an indication of the amount of 
  236.     work involved. 
  237. */
  238. typedef SOMLargeStruct            MBGetCurrentProgressPB;        /* Derived from a struct of 36 bytes in size */
  239.  
  240. /**********************************************************/
  241. /* Miscellaneous Operations */
  242. /***********************************************************/
  243. /* Returns the LetterSpec of a letter for use with Mailer APIs. */
  244. typedef SOMLargeStruct            MBGetLetterSpecPB;            /* Derived from a struct of 38 bytes in size */
  245.  
  246. /* Obtain a mail sequence number and open container reference from a letter spec */
  247. typedef SOMLargeStruct            MBConvertLetterSpecPB;        /* Derived from a struct of 38 bytes in size */
  248.  
  249. /* Returns the containerID given a well known container type */
  250. typedef SOMLargeStruct            MBGetContainerTokenPB;        /* Derived from a struct of 44 bytes in size */
  251.  
  252. /* Returns ContainerData for a given ContainerToken. */
  253. typedef SOMLargeStruct            MBGetContainerDataFromTokenPB; /* Derived from a struct of 44 bytes in size */
  254.  
  255. /**********************************************************/
  256. /* Contents Operations */
  257. /***********************************************************/
  258. /* Opens a letter that is currently in a container. */
  259. typedef SOMLargeStruct            MBOpenLetterPB;                /* Derived from a struct of 38 bytes in size */
  260.  
  261. /* Opens a letter that is currently on the disk. */
  262. typedef SOMLargeStruct            MBOpenDiskLetterPB;            /* Derived from a struct of 98 bytes in size */
  263.  
  264. /* Closes a letter that is currently open. */
  265. typedef SOMLargeStruct            MBCloseLetterPB;            /* Derived from a struct of 28 bytes in size */
  266.  
  267. /* Opens a letter that is nested within another. */
  268. typedef SOMLargeStruct            MBOpenNestedLetterPB;        /* Derived from a struct of 32 bytes in size */
  269.  
  270. /* Returns the path where the enclosures of a certain letter are kept. */
  271. typedef SOMLargeStruct            MBReadEnclosureFSSpecPB;    /* Derived from a struct of 98 bytes in size */
  272.  
  273. /* Returns the path where the content of a certain letter is kept. */
  274. typedef SOMLargeStruct            MBReadContentFSSpecPB;        /* Derived from a struct of 98 bytes in size */
  275.  
  276. /* Enumerates across the blocks of a letter. */
  277. typedef SOMLargeStruct            MBEnumerateBlocksPB;        /* Derived from a struct of 46 bytes in size */
  278.  
  279. /* Returns a buffer of all the recipients of a certain letter */
  280. typedef SOMLargeStruct            MBReadRecipientsPB;            /* Derived from a struct of 48 bytes in size */
  281.  
  282. /* Reads the attributes of a letter as specified in the requestMask. */
  283. /*
  284.     buffer returned will contain the attribute values of 
  285.     the attributes indicated in responseMask, 
  286.     from the attribute indicated by the least significant bit set
  287.     to the attribute indicated by the most significant bit set.
  288.     Note that recipients - from, to, cc, bcc cannot be read using
  289.     this call. Use GetRecipients to read these.
  290. */
  291. typedef SOMLargeStruct            MBReadAttributesPB;            /* Derived from a struct of 50 bytes in size */
  292.  
  293. /* Reads the block of a letter. */
  294. typedef SOMLargeStruct            MBReadBlockPB;                /* Derived from a struct of 60 bytes in size */
  295.  
  296. /* Returns a SignatureContext that can be used to verify a signature. */
  297. typedef SOMLargeStruct            MBVerifySignaturePB;        /* Derived from a struct of 32 bytes in size */
  298.  
  299. /* Creates a letter given the relevant info about the letter. */
  300. typedef SOMLargeStruct            MBCreateLetterPB;            /* Derived from a struct of 142 bytes in size */
  301.  
  302. /* Submits a letter for processing. */
  303. typedef SOMLargeStruct            MBSubmitLetterPB;            /* Derived from a struct of 58 bytes in size */
  304.  
  305. /* Begin a nested mail item within some mail item. */
  306. typedef SOMLargeStruct            MBBeginNestedLetterPB;        /* Derived from a struct of 68 bytes in size */
  307.  
  308. /* End the nested mail item. This function is always executed synchronously. */
  309. typedef SOMLargeStruct            MBEndNestedLetterPB;        /* Derived from a struct of 28 bytes in size */
  310.  
  311. /* Add attributes to a mail item. */
  312. typedef SOMLargeStruct            MBAddAttributePB;            /* Derived from a struct of 42 bytes in size */
  313.  
  314. /* Adds an enclosure to a mail item. This function is always executed synchronously. */
  315. typedef SOMLargeStruct            MBAddEnclosurePB;            /* Derived from a struct of 130 bytes in size */
  316.  
  317. /* Adds a block to a mail item. */
  318. typedef SOMLargeStruct            MBAddBlockPB;                /* Derived from a struct of 60 bytes in size */
  319.  
  320. /* Adds a letter to another one. */
  321. typedef SOMLargeStruct            MBAddLetterPB;                /* Derived from a struct of 32 bytes in size */
  322.  
  323. /* Adds content to a mail item. */
  324. typedef SOMLargeStruct            MBAddContentPB;                /* Derived from a struct of 52 bytes in size */
  325.  
  326. /* Reads the content of a mail item. */
  327. typedef SOMLargeStruct            MBReadContentPB;            /* Derived from a struct of 62 bytes in size */
  328.  
  329. /* Adds another recipient to a mail item. */
  330. typedef SOMLargeStruct            MBAddRecipientPB;            /* Derived from a struct of 36 bytes in size */
  331.  
  332. /* Gets a font name from the letter, given a font number */
  333. typedef SOMLargeStruct            MBGetFontNameFromLetterPB;    /* Derived from a struct of 36 bytes in size */
  334.  
  335. typedef SOMLargeStruct            MailboxParam;                /* Derived from a struct of 2362 bytes in size */
  336.  
  337. /*------------------------------------------------------------------------------*/
  338. /*    FUNCTION PROTOTYPES                                                           */
  339. /*------------------------------------------------------------------------------*/
  340. /**********************************************************/
  341. /* Mailbox Operations */
  342. /***********************************************************/
  343. /**********************************************************/
  344. /* MailItem Operations */
  345. /***********************************************************/
  346. /**********************************************************/
  347. /* MailItem Changes Operations */
  348. /***********************************************************/
  349. /**********************************************************/
  350. /* Progress Indicator Operations */
  351. /**********************************************************/
  352. /**********************************************************/
  353. /* Miscellaneous Operations */
  354. /***********************************************************/
  355. /**********************************************************/
  356. /* Contents Operations */
  357. /***********************************************************/
  358. #endif
  359.  
  360. #endif /* __SOMIDL__ */
  361.  
  362. #endif /* __OCEMAILBOX_IDL__ */
  363.  
  364.